package ssm;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
 * 分布式缓存
 *      1、redis,memcached等
 * 本地缓存
 *      1、和业务程序一起的缓存，例如mybatis的一级或二级缓存，
 *          本地缓存自然是最快的，但是不能在多个节点共享
 *      2、常见的本地缓存，mybatis的一级，二级缓存，框架本身的缓存，
 *          redis本地单机服务，ehchach,guava cache,caffine有等
 *
 *
 *
 * 跨域
 *      1、什么是跨域：A网页设置的cookie，B网页不能打开，除非两个网页是同源
 *      2、所谓同源指的是三个相同：协议相同：http、https；域名相同：www.baidu.com;端口相同：80，81
 *      3、一句话说明：浏览器从一个域名的网页去请求另一个域名的资源时域名，端口，协议任一不同，都是跨域
 *      4、解决方法：
 *          1、使用拦截器方法
 *          2、将以下代码写在拦截器中即可
 *           @Override
 *     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
 *         //表示接受任意域名的请求,也可以指定域名
 *         response.setHeader("Access-Control-Allow-Origin", request.getHeader("origin"));
 *         //该字段可选，是个布尔值，表示是否可以携带cookie
 *         response.setHeader("Access-Control-Allow-Credentials", "true");
 *         response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS");
 *         response.setHeader("Access-Control-Allow-Headers", "*");
 *         if(HttpMethod.OPTIONS.toString().equals(request.getMethod())){
 *             return true;
 *         }
 *         return true;
 *     }
 */
@SpringBootApplication
@MapperScan("ssm.mapper")
@EnableTransactionManagement
public class HolidaySSM {
    public static void main(String[] args) {
        SpringApplication.run(HolidaySSM.class, args);
    }
}
